﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.InteropServices;
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.Xml;

    [GeneratedCode("System.ServiceModel", "3.0.0.0"), DebuggerStepThrough]
    public class DeviceClient : ClientBase<Device>, Device
    {
        public DeviceClient()
        {
        }

        public DeviceClient(string endpointConfigurationName) : base(endpointConfigurationName)
        {
        }

        public DeviceClient(Binding binding, EndpointAddress remoteAddress) : base(binding, remoteAddress)
        {
        }

        public DeviceClient(string endpointConfigurationName, EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress)
        {
        }

        public DeviceClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress)
        {
        }

        public void AddIPAddressFilter(IPAddressFilter IPAddressFilter)
        {
            base.Channel.AddIPAddressFilter(IPAddressFilter);
        }

        public void AddScopes(string[] ScopeItem)
        {
            AddScopesRequest request = new AddScopesRequest {
                ScopeItem = ScopeItem
            };
            ((Device) this).AddScopes(request);
        }

        public Certificate CreateCertificate(string CertificateID, string Subject, System.DateTime ValidNotBefore, System.DateTime ValidNotAfter)
        {
            CreateCertificateRequest request = new CreateCertificateRequest {
                CertificateID = CertificateID,
                Subject = Subject,
                ValidNotBefore = ValidNotBefore,
                ValidNotAfter = ValidNotAfter
            };
            return ((Device) this).CreateCertificate(request).NvtCertificate;
        }

        public void CreateDot1XConfiguration(Dot1XConfiguration Dot1XConfiguration)
        {
            base.Channel.CreateDot1XConfiguration(Dot1XConfiguration);
        }

        public void CreateUsers(User[] User)
        {
            CreateUsersRequest request = new CreateUsersRequest {
                User = User
            };
            ((Device) this).CreateUsers(request);
        }

        public void DeleteCertificates(string[] CertificateID)
        {
            DeleteCertificatesRequest request = new DeleteCertificatesRequest {
                CertificateID = CertificateID
            };
            ((Device) this).DeleteCertificates(request);
        }

        public void DeleteDot1XConfiguration(string[] Dot1XConfigurationToken)
        {
            DeleteDot1XConfigurationRequest request = new DeleteDot1XConfigurationRequest {
                Dot1XConfigurationToken = Dot1XConfigurationToken
            };
            ((Device) this).DeleteDot1XConfiguration(request);
        }

        public void DeleteUsers(string[] Username)
        {
            DeleteUsersRequest request = new DeleteUsersRequest {
                Username = Username
            };
            ((Device) this).DeleteUsers(request);
        }

        public BinaryData GetAccessPolicy()
        {
            return base.Channel.GetAccessPolicy();
        }

        public Certificate[] GetCACertificates()
        {
            GetCACertificatesRequest request = new GetCACertificatesRequest();
            return ((Device) this).GetCACertificates(request).CACertificate;
        }

        public Capabilities GetCapabilities(CapabilityCategory[] Category)
        {
            GetCapabilitiesRequest request = new GetCapabilitiesRequest {
                Category = Category
            };
            return ((Device) this).GetCapabilities(request).Capabilities;
        }

        public CertificateInformation GetCertificateInformation(string CertificateID)
        {
            GetCertificateInformationRequest request = new GetCertificateInformationRequest {
                CertificateID = CertificateID
            };
            return ((Device) this).GetCertificateInformation(request).CertificateInformation;
        }

        public Certificate[] GetCertificates()
        {
            GetCertificatesRequest request = new GetCertificatesRequest();
            return ((Device) this).GetCertificates(request).NvtCertificate;
        }

        public CertificateStatus[] GetCertificatesStatus()
        {
            GetCertificatesStatusRequest request = new GetCertificatesStatusRequest();
            return ((Device) this).GetCertificatesStatus(request).CertificateStatus;
        }

        public bool GetClientCertificateMode()
        {
            return base.Channel.GetClientCertificateMode();
        }

        public string GetDeviceInformation(out string Model, out string FirmwareVersion, out string SerialNumber, out string HardwareId)
        {
            return base.Channel.GetDeviceInformation(out Model, out FirmwareVersion, out SerialNumber, out HardwareId);
        }

        public DiscoveryMode GetDiscoveryMode()
        {
            return base.Channel.GetDiscoveryMode();
        }

        public DNSInformation GetDNS()
        {
            return base.Channel.GetDNS();
        }

        public Dot11Capabilities GetDot11Capabilities(XmlElement[] Any)
        {
            GetDot11CapabilitiesRequest request = new GetDot11CapabilitiesRequest {
                Any = Any
            };
            return ((Device) this).GetDot11Capabilities(request).Capabilities;
        }

        public Dot11Status GetDot11Status(string InterfaceToken)
        {
            return base.Channel.GetDot11Status(InterfaceToken);
        }

        public Dot1XConfiguration GetDot1XConfiguration(string Dot1XConfigurationToken)
        {
            return base.Channel.GetDot1XConfiguration(Dot1XConfigurationToken);
        }

        public Dot1XConfiguration[] GetDot1XConfigurations()
        {
            GetDot1XConfigurationsRequest request = new GetDot1XConfigurationsRequest();
            return ((Device) this).GetDot1XConfigurations(request).Dot1XConfiguration;
        }

        public NetworkHost[] GetDPAddresses()
        {
            GetDPAddressesRequest request = new GetDPAddressesRequest();
            return ((Device) this).GetDPAddresses(request).DPAddress;
        }

        public DynamicDNSInformation GetDynamicDNS()
        {
            return base.Channel.GetDynamicDNS();
        }

        public string GetEndpointReference(out XmlElement[] Any)
        {
            GetEndpointReferenceRequest request = new GetEndpointReferenceRequest();
            GetEndpointReferenceResponse endpointReference = ((Device) this).GetEndpointReference(request);
            Any = endpointReference.Any;
            return endpointReference.GUID;
        }

        public HostnameInformation GetHostname()
        {
            return base.Channel.GetHostname();
        }

        public IPAddressFilter GetIPAddressFilter()
        {
            return base.Channel.GetIPAddressFilter();
        }

        public NetworkGateway GetNetworkDefaultGateway()
        {
            return base.Channel.GetNetworkDefaultGateway();
        }

        public NetworkInterface[] GetNetworkInterfaces()
        {
            GetNetworkInterfacesRequest request = new GetNetworkInterfacesRequest();
            return ((Device) this).GetNetworkInterfaces(request).NetworkInterfaces;
        }

        public NetworkProtocol[] GetNetworkProtocols()
        {
            GetNetworkProtocolsRequest request = new GetNetworkProtocolsRequest();
            return ((Device) this).GetNetworkProtocols(request).NetworkProtocols;
        }

        public NTPInformation GetNTP()
        {
            return base.Channel.GetNTP();
        }

        public BinaryData GetPkcs10Request(string CertificateID, string Subject, BinaryData Attributes)
        {
            GetPkcs10RequestRequest request = new GetPkcs10RequestRequest {
                CertificateID = CertificateID,
                Subject = Subject,
                Attributes = Attributes
            };
            return ((Device) this).GetPkcs10Request(request).Pkcs10Request;
        }

        public RelayOutput[] GetRelayOutputs()
        {
            GetRelayOutputsRequest request = new GetRelayOutputsRequest();
            return ((Device) this).GetRelayOutputs(request).RelayOutputs;
        }

        public DiscoveryMode GetRemoteDiscoveryMode()
        {
            return base.Channel.GetRemoteDiscoveryMode();
        }

        public RemoteUser GetRemoteUser()
        {
            return base.Channel.GetRemoteUser();
        }

        public TestTool.Proxies.Onvif.Scope[] GetScopes()
        {
            GetScopesRequest request = new GetScopesRequest();
            return ((Device) this).GetScopes(request).Scopes;
        }

        public DeviceServiceCapabilities GetServiceCapabilities()
        {
            return base.Channel.GetServiceCapabilities();
        }

        public Service[] GetServices(bool IncludeCapability)
        {
            GetServicesRequest request = new GetServicesRequest {
                IncludeCapability = IncludeCapability
            };
            return ((Device) this).GetServices(request).Service;
        }

        public BackupFile[] GetSystemBackup()
        {
            GetSystemBackupRequest request = new GetSystemBackupRequest();
            return ((Device) this).GetSystemBackup(request).BackupFiles;
        }

        public SystemDateTime GetSystemDateAndTime()
        {
            return base.Channel.GetSystemDateAndTime();
        }

        public SystemLog GetSystemLog(SystemLogType LogType)
        {
            return base.Channel.GetSystemLog(LogType);
        }

        public SupportInformation GetSystemSupportInformation()
        {
            return base.Channel.GetSystemSupportInformation();
        }

        public SystemLogUri[] GetSystemUris(out string SupportInfoUri, out string SystemBackupUri, out GetSystemUrisResponseExtension Extension)
        {
            GetSystemUrisRequest request = new GetSystemUrisRequest();
            GetSystemUrisResponse systemUris = ((Device) this).GetSystemUris(request);
            SupportInfoUri = systemUris.SupportInfoUri;
            SystemBackupUri = systemUris.SystemBackupUri;
            Extension = systemUris.Extension;
            return systemUris.SystemLogUris;
        }

        public User[] GetUsers()
        {
            GetUsersRequest request = new GetUsersRequest();
            return ((Device) this).GetUsers(request).User;
        }

        public string GetWsdlUrl()
        {
            GetWsdlUrlRequest request = new GetWsdlUrlRequest();
            return ((Device) this).GetWsdlUrl(request).WsdlUrl;
        }

        public NetworkZeroConfiguration GetZeroConfiguration()
        {
            return base.Channel.GetZeroConfiguration();
        }

        public void LoadCACertificates(Certificate[] CACertificate)
        {
            LoadCACertificatesRequest request = new LoadCACertificatesRequest {
                CACertificate = CACertificate
            };
            ((Device) this).LoadCACertificates(request);
        }

        public void LoadCertificates(Certificate[] NVTCertificate)
        {
            LoadCertificatesRequest request = new LoadCertificatesRequest {
                NVTCertificate = NVTCertificate
            };
            ((Device) this).LoadCertificates(request);
        }

        public void LoadCertificateWithPrivateKey(CertificateWithPrivateKey[] CertificateWithPrivateKey)
        {
            LoadCertificateWithPrivateKeyRequest request = new LoadCertificateWithPrivateKeyRequest {
                CertificateWithPrivateKey = CertificateWithPrivateKey
            };
            ((Device) this).LoadCertificateWithPrivateKey(request);
        }

        public void RemoveIPAddressFilter(IPAddressFilter IPAddressFilter)
        {
            base.Channel.RemoveIPAddressFilter(IPAddressFilter);
        }

        public void RemoveScopes(ref string[] ScopeItem)
        {
            RemoveScopesRequest request = new RemoveScopesRequest {
                ScopeItem = ScopeItem
            };
            RemoveScopesResponse response = ((Device) this).RemoveScopes(request);
            ScopeItem = response.ScopeItem;
        }

        public void RestoreSystem(BackupFile[] BackupFiles)
        {
            RestoreSystemRequest request = new RestoreSystemRequest {
                BackupFiles = BackupFiles
            };
            ((Device) this).RestoreSystem(request);
        }

        public Dot11AvailableNetworks[] ScanAvailableDot11Networks(string InterfaceToken)
        {
            ScanAvailableDot11NetworksRequest request = new ScanAvailableDot11NetworksRequest {
                InterfaceToken = InterfaceToken
            };
            return ((Device) this).ScanAvailableDot11Networks(request).Networks;
        }

        public string SendAuxiliaryCommand(string AuxiliaryCommand)
        {
            return base.Channel.SendAuxiliaryCommand(AuxiliaryCommand);
        }

        public void SetAccessPolicy(BinaryData PolicyFile)
        {
            base.Channel.SetAccessPolicy(PolicyFile);
        }

        public void SetCertificatesStatus(CertificateStatus[] CertificateStatus)
        {
            SetCertificatesStatusRequest request = new SetCertificatesStatusRequest {
                CertificateStatus = CertificateStatus
            };
            ((Device) this).SetCertificatesStatus(request);
        }

        public void SetClientCertificateMode(bool Enabled)
        {
            base.Channel.SetClientCertificateMode(Enabled);
        }

        public void SetDiscoveryMode(DiscoveryMode DiscoveryMode)
        {
            base.Channel.SetDiscoveryMode(DiscoveryMode);
        }

        public void SetDNS(bool FromDHCP, string[] SearchDomain, IPAddress[] DNSManual)
        {
            SetDNSRequest request = new SetDNSRequest {
                FromDHCP = FromDHCP,
                SearchDomain = SearchDomain,
                DNSManual = DNSManual
            };
            ((Device) this).SetDNS(request);
        }

        public void SetDot1XConfiguration(Dot1XConfiguration Dot1XConfiguration)
        {
            base.Channel.SetDot1XConfiguration(Dot1XConfiguration);
        }

        public void SetDPAddresses(NetworkHost[] DPAddress)
        {
            SetDPAddressesRequest request = new SetDPAddressesRequest {
                DPAddress = DPAddress
            };
            ((Device) this).SetDPAddresses(request);
        }

        public void SetDynamicDNS(DynamicDNSType Type, string Name, string TTL)
        {
            SetDynamicDNSRequest request = new SetDynamicDNSRequest {
                Type = Type,
                Name = Name,
                TTL = TTL
            };
            ((Device) this).SetDynamicDNS(request);
        }

        public void SetHostname(string Name)
        {
            SetHostnameRequest request = new SetHostnameRequest {
                Name = Name
            };
            ((Device) this).SetHostname(request);
        }

        public bool SetHostnameFromDHCP(bool FromDHCP)
        {
            return base.Channel.SetHostnameFromDHCP(FromDHCP);
        }

        public void SetIPAddressFilter(IPAddressFilter IPAddressFilter)
        {
            base.Channel.SetIPAddressFilter(IPAddressFilter);
        }

        public void SetNetworkDefaultGateway(string[] IPv4Address, string[] IPv6Address)
        {
            SetNetworkDefaultGatewayRequest request = new SetNetworkDefaultGatewayRequest {
                IPv4Address = IPv4Address,
                IPv6Address = IPv6Address
            };
            ((Device) this).SetNetworkDefaultGateway(request);
        }

        public bool SetNetworkInterfaces(string InterfaceToken, NetworkInterfaceSetConfiguration NetworkInterface)
        {
            return base.Channel.SetNetworkInterfaces(InterfaceToken, NetworkInterface);
        }

        public void SetNetworkProtocols(NetworkProtocol[] NetworkProtocols)
        {
            SetNetworkProtocolsRequest request = new SetNetworkProtocolsRequest {
                NetworkProtocols = NetworkProtocols
            };
            ((Device) this).SetNetworkProtocols(request);
        }

        public void SetNTP(bool FromDHCP, NetworkHost[] NTPManual)
        {
            SetNTPRequest request = new SetNTPRequest {
                FromDHCP = FromDHCP,
                NTPManual = NTPManual
            };
            ((Device) this).SetNTP(request);
        }

        public void SetRelayOutputSettings(string RelayOutputToken, RelayOutputSettings Properties)
        {
            base.Channel.SetRelayOutputSettings(RelayOutputToken, Properties);
        }

        public void SetRelayOutputState(string RelayOutputToken, RelayLogicalState LogicalState)
        {
            base.Channel.SetRelayOutputState(RelayOutputToken, LogicalState);
        }

        public void SetRemoteDiscoveryMode(DiscoveryMode RemoteDiscoveryMode)
        {
            base.Channel.SetRemoteDiscoveryMode(RemoteDiscoveryMode);
        }

        public void SetRemoteUser(RemoteUser RemoteUser)
        {
            base.Channel.SetRemoteUser(RemoteUser);
        }

        public void SetScopes(string[] Scopes)
        {
            SetScopesRequest request = new SetScopesRequest {
                Scopes = Scopes
            };
            ((Device) this).SetScopes(request);
        }

        public void SetSystemDateAndTime(SetDateTimeType DateTimeType, bool DaylightSavings, TestTool.Proxies.Onvif.TimeZone TimeZone, TestTool.Proxies.Onvif.DateTime UTCDateTime)
        {
            base.Channel.SetSystemDateAndTime(DateTimeType, DaylightSavings, TimeZone, UTCDateTime);
        }

        public void SetSystemFactoryDefault(FactoryDefaultType FactoryDefault)
        {
            base.Channel.SetSystemFactoryDefault(FactoryDefault);
        }

        public void SetUser(User[] User)
        {
            SetUserRequest request = new SetUserRequest {
                User = User
            };
            ((Device) this).SetUser(request);
        }

        public void SetZeroConfiguration(string InterfaceToken, bool Enabled)
        {
            base.Channel.SetZeroConfiguration(InterfaceToken, Enabled);
        }

        public string StartFirmwareUpgrade(out string UploadDelay, out string ExpectedDownTime)
        {
            StartFirmwareUpgradeRequest request = new StartFirmwareUpgradeRequest();
            StartFirmwareUpgradeResponse response = ((Device) this).StartFirmwareUpgrade(request);
            UploadDelay = response.UploadDelay;
            ExpectedDownTime = response.ExpectedDownTime;
            return response.UploadUri;
        }

        public string StartSystemRestore(out string ExpectedDownTime)
        {
            StartSystemRestoreRequest request = new StartSystemRestoreRequest();
            StartSystemRestoreResponse response = ((Device) this).StartSystemRestore(request);
            ExpectedDownTime = response.ExpectedDownTime;
            return response.UploadUri;
        }

        public string SystemReboot()
        {
            return base.Channel.SystemReboot();
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        AddScopesResponse Device.AddScopes(AddScopesRequest request)
        {
            return base.Channel.AddScopes(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        CreateCertificateResponse Device.CreateCertificate(CreateCertificateRequest request)
        {
            return base.Channel.CreateCertificate(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        CreateUsersResponse Device.CreateUsers(CreateUsersRequest request)
        {
            return base.Channel.CreateUsers(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        DeleteCertificatesResponse Device.DeleteCertificates(DeleteCertificatesRequest request)
        {
            return base.Channel.DeleteCertificates(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        DeleteDot1XConfigurationResponse Device.DeleteDot1XConfiguration(DeleteDot1XConfigurationRequest request)
        {
            return base.Channel.DeleteDot1XConfiguration(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        DeleteUsersResponse Device.DeleteUsers(DeleteUsersRequest request)
        {
            return base.Channel.DeleteUsers(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetCACertificatesResponse Device.GetCACertificates(GetCACertificatesRequest request)
        {
            return base.Channel.GetCACertificates(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetCapabilitiesResponse Device.GetCapabilities(GetCapabilitiesRequest request)
        {
            return base.Channel.GetCapabilities(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetCertificateInformationResponse Device.GetCertificateInformation(GetCertificateInformationRequest request)
        {
            return base.Channel.GetCertificateInformation(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetCertificatesResponse Device.GetCertificates(GetCertificatesRequest request)
        {
            return base.Channel.GetCertificates(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetCertificatesStatusResponse Device.GetCertificatesStatus(GetCertificatesStatusRequest request)
        {
            return base.Channel.GetCertificatesStatus(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetDot11CapabilitiesResponse Device.GetDot11Capabilities(GetDot11CapabilitiesRequest request)
        {
            return base.Channel.GetDot11Capabilities(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetDot1XConfigurationsResponse Device.GetDot1XConfigurations(GetDot1XConfigurationsRequest request)
        {
            return base.Channel.GetDot1XConfigurations(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetDPAddressesResponse Device.GetDPAddresses(GetDPAddressesRequest request)
        {
            return base.Channel.GetDPAddresses(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetEndpointReferenceResponse Device.GetEndpointReference(GetEndpointReferenceRequest request)
        {
            return base.Channel.GetEndpointReference(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetNetworkInterfacesResponse Device.GetNetworkInterfaces(GetNetworkInterfacesRequest request)
        {
            return base.Channel.GetNetworkInterfaces(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetNetworkProtocolsResponse Device.GetNetworkProtocols(GetNetworkProtocolsRequest request)
        {
            return base.Channel.GetNetworkProtocols(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetPkcs10RequestResponse Device.GetPkcs10Request(GetPkcs10RequestRequest request)
        {
            return base.Channel.GetPkcs10Request(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetRelayOutputsResponse Device.GetRelayOutputs(GetRelayOutputsRequest request)
        {
            return base.Channel.GetRelayOutputs(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetScopesResponse Device.GetScopes(GetScopesRequest request)
        {
            return base.Channel.GetScopes(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetServicesResponse Device.GetServices(GetServicesRequest request)
        {
            return base.Channel.GetServices(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetSystemBackupResponse Device.GetSystemBackup(GetSystemBackupRequest request)
        {
            return base.Channel.GetSystemBackup(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetSystemUrisResponse Device.GetSystemUris(GetSystemUrisRequest request)
        {
            return base.Channel.GetSystemUris(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetUsersResponse Device.GetUsers(GetUsersRequest request)
        {
            return base.Channel.GetUsers(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetWsdlUrlResponse Device.GetWsdlUrl(GetWsdlUrlRequest request)
        {
            return base.Channel.GetWsdlUrl(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        LoadCACertificatesResponse Device.LoadCACertificates(LoadCACertificatesRequest request)
        {
            return base.Channel.LoadCACertificates(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        LoadCertificatesResponse Device.LoadCertificates(LoadCertificatesRequest request)
        {
            return base.Channel.LoadCertificates(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        LoadCertificateWithPrivateKeyResponse Device.LoadCertificateWithPrivateKey(LoadCertificateWithPrivateKeyRequest request)
        {
            return base.Channel.LoadCertificateWithPrivateKey(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        RemoveScopesResponse Device.RemoveScopes(RemoveScopesRequest request)
        {
            return base.Channel.RemoveScopes(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        RestoreSystemResponse Device.RestoreSystem(RestoreSystemRequest request)
        {
            return base.Channel.RestoreSystem(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        ScanAvailableDot11NetworksResponse Device.ScanAvailableDot11Networks(ScanAvailableDot11NetworksRequest request)
        {
            return base.Channel.ScanAvailableDot11Networks(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetCertificatesStatusResponse Device.SetCertificatesStatus(SetCertificatesStatusRequest request)
        {
            return base.Channel.SetCertificatesStatus(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetDNSResponse Device.SetDNS(SetDNSRequest request)
        {
            return base.Channel.SetDNS(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetDPAddressesResponse Device.SetDPAddresses(SetDPAddressesRequest request)
        {
            return base.Channel.SetDPAddresses(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetDynamicDNSResponse Device.SetDynamicDNS(SetDynamicDNSRequest request)
        {
            return base.Channel.SetDynamicDNS(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetHostnameResponse Device.SetHostname(SetHostnameRequest request)
        {
            return base.Channel.SetHostname(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetNetworkDefaultGatewayResponse Device.SetNetworkDefaultGateway(SetNetworkDefaultGatewayRequest request)
        {
            return base.Channel.SetNetworkDefaultGateway(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetNetworkProtocolsResponse Device.SetNetworkProtocols(SetNetworkProtocolsRequest request)
        {
            return base.Channel.SetNetworkProtocols(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetNTPResponse Device.SetNTP(SetNTPRequest request)
        {
            return base.Channel.SetNTP(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetScopesResponse Device.SetScopes(SetScopesRequest request)
        {
            return base.Channel.SetScopes(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        SetUserResponse Device.SetUser(SetUserRequest request)
        {
            return base.Channel.SetUser(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        StartFirmwareUpgradeResponse Device.StartFirmwareUpgrade(StartFirmwareUpgradeRequest request)
        {
            return base.Channel.StartFirmwareUpgrade(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        StartSystemRestoreResponse Device.StartSystemRestore(StartSystemRestoreRequest request)
        {
            return base.Channel.StartSystemRestore(request);
        }

        public string UpgradeSystemFirmware(AttachmentData Firmware)
        {
            return base.Channel.UpgradeSystemFirmware(Firmware);
        }
    }
}

